home *** CD-ROM | disk | FTP | other *** search
- #ifndef plugin_menuH
- #define plugin_menuH
-
- #include <windows.h>
-
- #include "sl_struct.h"
- #include "cl_struct.h"
- #include "plugin_skin.h"
-
- //-----------------------------------------------------------------------------------------------
- //STRUKTURY
- //-----------------------------------------------------------------------------------------------
-
- //-----------------------------------------------------------------------------------------------
- //Pozycja menu
- //-----------------------------------------------------------------------------------------------
-
- typedef struct {
-
- int structSize; //rozmiar struktury w bajtach
-
- char *Item_ID; //ID danej pozycji
- char *Parent_ID; //Je£li tutaj bΩdzie jaka£ warto£µ, to dana pozycja zostanie wstawiona jako child (submenu)
- char *Menu_ID; //ID menu do kt≤rego przypisana jest ta pozycja
-
- char *Caption; //wy£wietlana nazwa pozycji w menu
- HANDLE ItemHandle; //wskaƒnik TMenuItem * danej pozycji
-
- int Flags; //Flagi
-
- int Position; //Pozycja w menu, im wy┐sza liczba, tym ni┐ej znajduje siΩ dany element
-
- TlenSingleImageDef Icon; //Ikonka dla danej pozycji
- int IconIndex; //je£li Icon jest NULL, i IconIndex > 0, to przypisywana jest ikona o indeksie IconIndex - 1
- //je£li ikonka dodawana jest przez Icon, to IconIndex jest updatowane po dodaniu pozycji menu
-
- TLENFUNCTION CallBack; //funkcja callback dla danej pozycji - wywo│ywana po jej klikniΩciu
- //WPARAM: TlenMenuItemDefinition *
- //LPARAM: MenuPopupInfo *
-
- DWORD HotKey; //skr≤t klawiszowy, taki sam jak lParam z WM_HOTKEY
- //(0, gdy bez skr≤tu)
-
- HINSTANCE ModuleHandle; //Uchwyt dll'a pluginu
-
- void *OwnerData; //dowolny wskaƒnik
-
- } TlenMenuItemDefinition;
-
- //-----------------------------------------------------------------------------------------------
- //Informacja dotycz╣ca pokazywanego menu
- //-----------------------------------------------------------------------------------------------
-
- typedef struct {
-
- int structSize; //rozmiar struktury w bajtach
-
- POINT point; //punkt w kt≤rym pokazywane jest menu
-
- char *Menu_ID; //ID pokazywanego menu
- char *Location_ID; //Lokalizacja pokazywanego menu
-
- DWORD HotKey; //Je£li zosta│ wci£niΩty klawisz na li£cie kontakt≤w, to tutaj jest jego kod
-
- ContactsListDef Contacts; //Kontakty, kt≤re zosta│y zaznaczone przed wybraniem menu
-
- StringListDef MenuItemsToShow; //to wype│niaj╣ modu│y wpisuj╣c pozycje menu,
- //kt≤re chc╣ pokazaµ przy menu zale┐nym od kontaktu
-
- TLENFUNCTION CallBackFunc; //funkcja zostanie wywo│ana po wszystkich manipulacjach na menu, je£li wywo│uj╣cy
- //modu│ chce ukryµ lub pokazaµ jak╣£ pozycjΩ, to w tym w│a£nie miejscu mo┐e to uczyniµ
- //LPARAM - MenuPopupInfo *
-
- void *OwnerData; //Dowolny wskaƒnik
-
- ContactsListDef SubContacts; // kontakty, ktorych menu bedzie wyswietlane w podmenu
-
-
- } MenuPopupInfo;
-
- //-----------------------------------------------------------------------------------------------
- //Informacja dotycz╣ca klikniΩtej pozycji
- //-----------------------------------------------------------------------------------------------
-
- typedef struct {
-
- int structSize; //rozmiar struktury w bajtach
-
- TlenMenuItemDefinition *item; //klikniΩta pozycja
- MenuPopupInfo *menu; //wy£wietlone menu
-
- } MenuItemClickedDef;
-
- //-----------------------------------------------------------------------------------------------
- //FUNKCJE
- //-----------------------------------------------------------------------------------------------
-
- //Dodaje pozycje w menu
- //WPARAM - TlenMenuItemDefinition *
- //Zwraca ItemHandle
- #define TLEN_ADD_MENU_ITEM "Tlen/AddMenuItem"
-
- //Kasuje pozycjΩ menu
- //WPARAM - ItemHandle do skasowania
- #define TLEN_DELETE_MENU_ITEM "Tlen/DeleteMenuItem"
-
- //Kasuje dzieci pozycji menu
- //WPARAM - char *ItemID
- #define TLEN_DELETE_MENU_CHILDREN "Tlen/DeleteMenuChildren"
-
- //Zmienia w│a£ciwo£ci pozycji menu
- //WPARAM - ItemHandle, LPARAM - TlenMenuItemDefinition *
- #define TLEN_CHANGE_MENU_ITEM "Tlen/ChangeMenuItem"
-
- //Szuka pozycji menu
- //WPARAM - TlenMenuItemDefinition *
- //Zwraca TlenMenuItemDefinition * lub null
- #define TLEN_FIND_MENU_ITEM "Tlen/FindMenuItem"
-
- //Dodaje callback do menu
- //WPARAM - (char *) MenuID, LPARAM - (TLENFUNCTION) CallBackFunc
- #define TLEN_ADD_MENU_CALLBACK "Tlen/AddMenuCallBack"
-
- //Usuwa callback z menu
- //WPARAM - (char *) MenuID, LPARAM - (TLENFUNCTION) CallBackFunc
- #define TLEN_REMOVE_MENU_CALLBACK "Tlen/RemoveMenuCallBack"
-
- //Przy wywo│aniach funkcji callback:
- //WPARAM - kod zdarzenia
-
- //przed pokazaniem menu, tutaj pluginy moga dodac nowe pozycje, zmienic lub usunac jakies stworzone przez tlen
- //LPARAM - MenuPopupInfo *
- #define TLEN_MENU_CALLBACK_BEFORE_POPUP 1
- //po kliknieciu kazdej pozycji menu
- //LPARAM - MenuItemClickedDef *
- #define TLEN_MENU_CALLBACK_ITEM_CLICKED 2
- //tu plugin/modul musi dodac do stringlisty (->MenuItemsToShow) pozycje, ktore chce, zeby byly widoczne w menu
- //LPARAM - MenuPopupInfo *
- #define TLEN_MENU_CALLBACK_CHOOSE_VISIBLE 3
- //wywolywane w module pokazujacym menu tuz przed jego wyswietleniem
- //ostatnia szansa na ukrycie/pokazanie okreslonych pozycji
- //LPARAM - MenuPopupInfo *
- #define TLEN_MENU_CALLBACK_LAST_CHANGE 4
-
-
- //-----------------------------------------------------------------------------------------------
- //STAúE
- //-----------------------------------------------------------------------------------------------
- //Typy menu
- #define TLEN_MENU_TYPE_CONTACT_INDEPENDENT 1 //niezale┐ne od kontaktu (np menu g│≤wne)
- #define TLEN_MENU_TYPE_CONTACT_DEPENDENT 2 //zale┐ne od kontaktu (np menu listy kontakt≤w)
-
- //Lokalizacja menu
- #define TLEN_MENULOCATION_MAINMENUBUTTON "Tlen/MainMenuButton"
- #define TLEN_MENULOCATION_STATUSBUTTONSBAR "Tlen/StatusButtonsBar"
- #define TLEN_MENULOCATION_SYSTRAY "Tlen/SysTray"
- #define TLEN_MENULOCATION_CONTACTLIST "Tlen/ContactList"
- #define TLEN_MENULOCATION_CHATWINDOW "Tlen/ChatWindow"
- #define TLEN_MENULOCATION_AUTHREQUEST "Tlen/AuthRequest"
- #define TLEN_MENULOCATION_TLENSEARCH "Tlen/TlenSearch"
- #define TLEN_MENULOCATION_CHATOCCUPANTS "Tlen/ChatOccupant"
- #define TLEN_MENULOCATION_PRIVATECHAT "Tlen/PrivateChat"
- #define TLEN_MENULOCATION_CONTACTLIST_METAGROUP "Tlen/ContactListMetaGroup"
-
- //Identyfikatory menu u┐ywanych w tlenie
- #define TLEN_MENUID_MAIN "Tlen/Main"
- #define TLEN_MENUID_CL_ELEMENT "Tlen/CL/Element"
- #define TLEN_MENUID_CL_GROUP "Tlen/CL/Group"
- #define TLEN_MENUID_CL_METAGROUP "Tlen/CL/MetaGroup"
- #define TLEN_MENUID_CL_SECTION "Tlen/CL/Section"
- #define TLEN_MENUID_STATUS "Tlen/Status"
- #define TLEN_MENUID_CHATSTYLES "Tlen/ChatStyles"
- #define TLEN_MENUID_CHATROOMS "Tlen/ChatRooms"
- #define GG_MENUID_STATUS "GG/Status"
-
- //Flagi Menu Item
- #define TMI_GRAYED 0x00000001
- #define TMI_CHECKED 0x00000002
- #define TMI_HIDDEN 0x00000004
- #define TMI_AUTOCHECK 0x00000008
-
- //flagi wskazuj╣ce co zmodyfikowaµ (przy wywo│aniu modyfikacji)
- #define TMIM_CAPTION 0x10000000
- #define TMIM_FLAGS 0x20000000
- #define TMIM_ICON 0x40000000
- #define TMIM_HOTKEY 0x80000000
- #define TMIM_ALL 0xF0000000
- #define TMIM_ICON_REPLACE 0x01000000
-
-
- //Po czym wyszukiwac dany item:
- #define TMIS_ITEMID 0x00100000
- #define TMIS_MENUID 0x00200000
- #define TMIS_CAPTION 0x00400000
- #define TMIS_POSITION 0x00800000
- #define TMIS_ALL 0x00F00000
-
- //pozycje w menu tlenu:
-
- #define MI_SEPARATOR "Separator"
-
- #define MI_MAIN_MESSAGE "Tlen/Main/Message"
- #define MI_MAIN_CHAT "Tlen/Main/Chat"
- #define MI_MAIN_CONFERENCE "Tlen/Main/Conference"
- #define MI_MAIN_CHATS "Tlen/Main/Chats"
- #define MI_MAIN_SMSSEND "Tlen/Main/SMSSend"
- #define MI_MAIN_SMSOUTBOX "Tlen/Main/SMSOutbox"
- #define MI_MAIN_SMSNOTIFIER "Tlen/Main/SMSNotifier"
- #define MI_MAIN_PHONES "Tlen/Main/Phones"
- #define MI_MAIN_SEARCH "Tlen/Main/Search"
- #define MI_MAIN_SEARCHTLEN "Tlen/Main/SearchTlen"
- #define MI_MAIN_SEARCHGG "Tlen/Main/SearchGG"
- #define MI_MAIN_SEARCHMYDATA "Tlen/Main/SearchMyData"
- #define MI_MAIN_ADDCONTACT "Tlen/Main/AddContact"
- #define MI_MAIN_ADDGROUP "Tlen/Main/AddGroup"
- #define MI_MAIN_OPTIONSGGUSERS "Tlen/Main/OptionsGGUsers"
- #define MI_MAIN_ARCHIVE "Tlen/Main/Archive"
- #define MI_MAIN_OPTIONS "Tlen/Main/Options"
- #define MI_MAIN_SKINPREVIEW "Tlen/Main/SkinPreview"
- #define MI_MAIN_MYPROFILES "Tlen/Main/MyProfiles"
- #define MI_MAIN_PROFILE "Tlen/Main/Profile"
- #define MI_MAIN_ADDPROFILE "Tlen/Main/AddProfile"
- #define MI_MAIN_LOGOUTPROFILE "Tlen/Main/LogoutProfile"
- #define MI_MAIN_NOTIFYFRIEND "Tlen/Main/NotifyFriend"
- #define MI_MAIN_IMPEX "Tlen/Main/ImpEx"
- #define MI_MAIN_EXIT "Tlen/Main/Exit"
-
- #define MI_CONTACT_MESSAGE "Tlen/Contact/Message"
- #define MI_CONTACT_CHAT "Tlen/Contact/Chat"
- #define MI_CONTACT_CONFERENCE "Tlen/Contact/Conference"
- #define MI_CONTACT_VOICECHAT "Tlen/Contact/VoiceChat"
- #define MI_CONTACT_SMSSEND "Tlen/Contact/SMSSend"
- #define MI_CONTACT_FILESEND "Tlen/Contact/FileSend"
- #define MI_CONTACT_MAILSEND "Tlen/Contact/MailSend"
- #define MI_CONTACT_PICTURESEND "Tlen/Contact/PictureSend"
- #define MI_CONTACT_PS_OPEN "Tlen/Contact/PictureSend/Open"
- #define MI_CONTACT_PS_LAST "Tlen/Contact/PictureSend/Last"
- #define MI_CONTACT_PS_CLEARLAST "Tlen/Contact/PictureSend/ClearLast"
- #define MI_CONTACT_VCARD "Tlen/Contact/VCard"
- #define MI_CONTACT_ARCHIVE "Tlen/Contact/Archive"
- #define MI_CONTACT_COPYDES "Tlen/Contact/CopyDescription"
- #define MI_CONTACT_ADDCONTACT "Tlen/Contact/AddContact"
- #define MI_CONTACT_EDITCONTACT "Tlen/Contact/EditContact"
- #define MI_CONTACT_DELETECONTACT "Tlen/Contact/DeleteContact"
- #define MI_CONTACT_BLOCK "Tlen/Contact/Block"
- #define MI_CONTACT_UNBLOCK "Tlen/Contact/Unblock"
- //czatowe
- #define MI_CONTACT_SETRIGHTS "Tlen/Contact/SetRights"
- #define MI_CONTACT_IGNORE "Tlen/Contact/Ignore"
-
- // subkontakty
- #define MI_CONTACT_SUBCONTACT1 "Tlen/Contact/SubContact1"
- #define MI_CONTACT_SUBCONTACT2 "Tlen/Contact/SubContact2"
- #define MI_CONTACT_SUBCONTACT3 "Tlen/Contact/SubContact3"
- #define MI_CONTACT_SUBCONTACT4 "Tlen/Contact/SubContact4"
-
- #define MI_GROUP_CHANGEGROUPNAME "Tlen/Group/ChangeGroupName"
- #define MI_GROUP_DELETEGROUP "Tlen/Group/DeleteGroup"
- #define MI_METAGROUP_CHANGEMETAGROUPNAME "Tlen/MetaGroup/ChangeMetaGroupName"
- #define MI_METAGROUP_DELETEMETAGROUP "Tlen/MetaGroup/DeleteMetaGroup"
-
- #define MI_TLENSTATUS_ONLINE "Tlen/Status/Online"
- #define MI_TLENSTATUS_CHAT "Tlen/Status/Chat"
- #define MI_TLENSTATUS_DND "Tlen/Status/DND"
- #define MI_TLENSTATUS_AWAY "Tlen/Status/Away"
- #define MI_TLENSTATUS_XA "Tlen/Status/XA"
- #define MI_TLENSTATUS_INVISIBLE "Tlen/Status/Invisible"
- #define MI_TLENSTATUS_OFFLINE "Tlen/Status/Offline"
- #define MI_TLENSTATUS_DESCSTATUS "Tlen/Status/DescStatus"
- #define MI_TLENSTATUS_DESCSTATUSITEM "Tlen/Status/DescStatusItem"
- #define MI_TLENSTATUS_DESCSTATUSCUST "Tlen/Status/DescStatusCust"
- #define MI_TLENSTATUS_EXIT "Tlen/Status/Exit"
-
- #define MI_GGSTATUS_ONLINE "GG/Status/Online"
- #define MI_GGSTATUS_AWAY "GG/Status/Away"
- #define MI_GGSTATUS_INVISIBLE "GG/Status/Invisible"
- #define MI_GGSTATUS_OFFLINE "GG/Status/Offline"
- #define MI_GGSTATUS_ONLYFRIENDS "GG/Status/OnlyFriends"
- #define MI_GGSTATUS_DESCSTATUS "GG/Status/DescStatus"
- #define MI_GGSTATUS_DESCSTATUSITEM "GG/Status/DescStatusItem"
- #define MI_GGSTATUS_DESCSTATUSCUST "GG/Status/DescStatusCust"
- #define MI_GGSTATUS_EXIT "GG/Status/Exit"
-
- #define MI_CHATSTYLES_STYLE "Tlen/ChatStyles/Style"
- #define MI_CHATSTYLES_CHATOPTIONS "Tlen/ChatStyles/ChatOptions"
-
- #define MI_CHATROOMS_DELETEFAVORITE "Tlen/ChatRooms/DeleteFavorite"
-
- //kolejnosc poszczegolnych pozycji menu
- #define MI_POS_MAIN_MESSAGE 10000
- #define MI_POS_MAIN_CHAT 10100
- #define MI_POS_MAIN_CONFERENCE 10200
- #define MI_POS_MAIN_CHATS 10300
- #define MI_POS_MAIN_SMSSEND 100000
- #define MI_POS_MAIN_SMSOUTBOX 100100
- #define MI_POS_MAIN_SMSNOTIFIER 100200
- #define MI_POS_MAIN_PHONES 100300
- #define MI_POS_MAIN_VCARD 200000
- #define MI_POS_MAIN_SEARCH 300000
- #define MI_POS_MAIN_SEARCHTLEN 10000
- #define MI_POS_MAIN_SEARCHGG 10100
- #define MI_POS_MAIN_SEARCHMYDATA 100000
- #define MI_POS_MAIN_ADDCONTACT 300100
- #define MI_POS_MAIN_ADDGROUP 300200
- #define MI_POS_MAIN_OPTIONSGGUSERS 400000
- #define MI_POS_MAIN_ARCHIVE 500000
- #define MI_POS_MAIN_OPTIONS 600000
- #define MI_POS_MAIN_SKINPREVIEW 600100
- #define MI_POS_MAIN_MYPLANS 700000
- #define MI_POS_MAIN_MYPROFILES 800000
- #define MI_POS_MAIN_ADDPROFILE 800100
- #define MI_POS_MAIN_LOGOUTPROFILE 800200
- #define MI_POS_MAIN_NOTIFYFRIEND 900000
- #define MI_POS_MAIN_IMPEX 900100
- #define MI_POS_MAIN_EXIT 1000000
-
- #define MI_POS_CONTACT_MESSAGE 10000
- #define MI_POS_CONTACT_CHAT 10100
- #define MI_POS_CONTACT_CONFERENCE 10200
- #define MI_POS_CONTACT_VOICECHAT 10300
- #define MI_POS_CONTACT_SMSSEND 100000
- #define MI_POS_CONTACT_FILESEND 100100
- #define MI_POS_CONTACT_MAILSEND 100200
- #define MI_POS_CONTACT_PICTURESEND 100300
- #define MI_POS_CONTACT_PS_OPEN 100
- #define MI_POS_CONTACT_PS_LAST 10000
- #define MI_POS_CONTACT_PS_CLEARLAST 100000
- #define MI_POS_CONTACT_VCARD 200000
- #define MI_POS_CONTACT_ARCHIVE 200100
- #define MI_POS_CONTACT_COPYDES 200200
- #define MI_POS_CONTACT_ADDCONTACT 300000
- #define MI_POS_CONTACT_EDITCONTACT 300100
- #define MI_POS_CONTACT_DELETECONTACT 300200
- #define MI_POS_CONTACT_BLOCK 400000
- #define MI_POS_CONTACT_UNBLOCK 400100
- #define MI_POS_CONTACT_IGNORE 500100
- #define MI_POS_CONTACT_SETRIGHTS 500200
- #define MI_POS_CONTACT_SUBCONTACT1 500300
- #define MI_POS_CONTACT_SUBCONTACT2 500400
- #define MI_POS_CONTACT_SUBCONTACT3 500500
- #define MI_POS_CONTACT_SUBCONTACT4 500600
- #define MI_POS_CONTACT_CHANGEMETAGROUPNAME 500700
- #define MI_POS_CONTACT_DELETEMETAGROUP 500800
-
-
- #define MI_POS_GROUP_CHANGEGROUPNAME 10000
- #define MI_POS_GROUP_DELETEGROUP 10100
- #define MI_POS_METAGROUP_CHANGEMETAGROUPNAME 10000
- #define MI_POS_METAGROUP_DELETEMETAGROUP 10100
-
- #define MI_POS_TLENSTATUS_ONLINE 10000
- #define MI_POS_TLENSTATUS_CHAT 10100
- #define MI_POS_TLENSTATUS_DND 10200
- #define MI_POS_TLENSTATUS_AWAY 10300
- #define MI_POS_TLENSTATUS_XA 10400
- #define MI_POS_TLENSTATUS_INVISIBLE 10500
- #define MI_POS_TLENSTATUS_OFFLINE 10600
- #define MI_POS_TLENSTATUS_DESCSTATUS 40050
- #define MI_POS_TLENSTATUS_DESCSTATUSCUST 40100
- #define MI_POS_TLENSTATUS_EXIT 1000000
-
- #define MI_POS_GGSTATUS_ONLINE 30000
- #define MI_POS_GGSTATUS_AWAY 30100
- #define MI_POS_GGSTATUS_INVISIBLE 30200
- #define MI_POS_GGSTATUS_OFFLINE 30300
- #define MI_POS_GGSTATUS_ONLYFRIENDS 40000
- #define MI_POS_GGSTATUS_DESCSTATUS 100050
- #define MI_POS_GGSTATUS_DESCSTATUSCUST 100100
- #define MI_POS_GGSTATUS_EXIT 1000000
-
- #define MI_POS_CHATSTYLES_CHATOPTIONS 100000
- //-----------------------------------------------------------------------------------------------
-
- #endif
-